19. Control Design Objective and Criteria

Before diving into the details of controller design, it’s worth spending time discussing what, in a general sense, the major objectives of a controller are.

  1. Stability. First and foremost, a controller should promote system stability. In truth, there are many ways to define and characterize stability. One common definition applicable to linear systems has the acronym BIBO. BIBO stands for Bounded Input, Bounded Output and it means that as long as the inputs are below a certain value, then the output is guaranteed to also be below a certain value. A more rigorous definition is known as asymptotic stability. A system that is asymptotically stable is guaranteed to converge to a fixed, finite value if given a finite input or initial condition (for example, a dropped ball will eventually come to rest on the ground). Obviously this is a very desirable property for real-world systems.

  2. Tracking. Tracking performance is also important. Tracking refers to the controller’s ability to follow or maintain a reference input signal. The difference between the reference point and the actual output is the tracking error. An example of a tracking task is the heating and air conditioning system in a building. You set the desired temperature with the thermostat, which has an integrated sensor to measure the current temperature, and if there is a tracking error the thermostat will activate the heater or air conditioner to drive the temperature towards the setpoint.

  3. Robustness. As statistician George Box once wrote, “All models are wrong, but some are useful.” Ideally a controller would not depend on a very detailed mathematical model with parameters known to a high degree of precision. Just imagine if the behavior of your car’s cruise controller was sensitive to the number of passengers in the car or the ambient wind speed. Instead, controllers should be valid over a broad range parameter values and utilize simple approximations, or no mathematical model at all.

  4. Disturbance Rejection. All real-world systems are corrupted by noise and other measurement errors. While it is important to try and limit the unwanted disturbances, it also important to design controllers that are tolerant of disturbances.

  5. Optimality. Although not a requirement for every controller, in many cases it is important to optimize some property of the system, for example, minimize control effort, maximize distance traveled in a given time interval, or minimize tracking error. Optimal control requires a mathematical model of the system, constraint equations that set upper and lower limits of the control inputs, and a cost function. Gradient descent/ascent algorithms are popular first choices to optimize cost functions.

Controller Design Process

I would like to zoom out now and discuss how controllers are usually designed. Successful controllers rely on a systematic, multi-step design process. Broadly, the steps are:

  1. Decide on performance specifications of the system (e.g., maximum tracking error, percent overshoot, settling time, etc.)
  2. If possible, develop a simple mathematical model of system
  3. Choose sensors and controller type
  4. Design controller to meet performance specs
  5. If possible, use simulation to test controller performance
  6. Choose hardware/software to implement controller
  7. Tune controller online

You have seen that the objectives of a controller are to promote stability, tracking, robustness, and to reject disturbances, but the question now is, “how should the control signal u(t) act in order to achieve these objectives?” Clearly, in order to minimize the tracking error, the control signal should be some function of the error, but what exactly might it look like?

It stands to reason that u(t) should be somehow related to the magnitude of the error. In other words, a small error should produce a small control input, and vice versa. It is also important that the error, e(t) should eventually go to zero, or at least become tolerably small. Another fairly intuitive property is that the control input should not vary too rapidly. Imagine how unpleasant the ride would be if your cruise controller could regulate speed only by applying the gas and brakes fully on or fully off. Rapid or jerky inputs are, at a minimum, likely to cause unnecessary wear and tear on the actuators and may decrease stability. Finally, it would be beneficial if the control signal didn’t depend on knowing specific model parameters, e.g., the mass of the car, aerodynamic drag coefficient, or the slope of the terrain.